    /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Blackjack;

import prop.Mano;
import prop.Carta;

/**
 *
 * @author Michal
 */
public class ManoBkjk extends Mano {
    public ManoBkjk () {
        super();
    }
    public void iniciarMano(Carta c1, Carta c2) {
        anadirCarta(c1);
        c1.mostrar();
        anadirCarta(c2);
        c2.mostrar();
    }

    public void iniciarManoCroupier(Carta c1, Carta c2) {
        anadirCarta(c1);
        c1.ocultar();
        anadirCarta(c2);
        c2.mostrar();
    }

    public void mostrarCartaCroupier() {
        getCarta(0).mostrar();
    }


    public Carta getCarta(int i) {
        if (i > cartas.size() - 1) { //excepcion a implementar
            Carta c = new Carta(Carta.Palos.COMODIN, 0);
            return c;
        }
        else return (Carta) cartas.get(i);
    }

    @Override
    public boolean anadirCarta(Carta c) {
        c.mostrar();
        return super.anadirCarta(c);
    }

/*
 * Evaluar devuelve la suma de los valores de las cartas de la mano tal y como
 * se definen en el Blackjack. Sin embargo, si en la mano hay alguna pareja,
 * al valor se le suma 200 y si hay algun As que adobte el valor 11, se sumará
 * 100 (atención, si todos los Ases adoptan el valor 1, no se suma 100).
 */
    @Override
    public int evaluar() {
        int val = 0;
        boolean asFound = false;
        int valCarta;
        int ases = 0;
        for (int i = 0; i < super.getNumCartas(); ++i) {
            valCarta = getCarta(i).getNum();
            if (valCarta == 1) ases++;
            else if (valCarta > 10) val += 10;
            else val += valCarta;
        }
        for (int i = 0; i < ases; i++) {
            if (val + 11 <= 21) {
               val += 11;
               if (asFound == false) asFound = true;
            }
            else val += 1;
        }
        if (super.getNumCartas() == 2
           && getCarta(0).getNum() == getCarta(1).getNum()) val += 200;
        if (asFound) val += 100;
        return val;
    }
}